package com.casic.modules.sys.dao;

import com.casic.common.base.dao.BaseDao;
import com.casic.common.utils.ExpandHashMap;
import com.casic.modules.sys.entity.SysUserEntity;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * 系统用户
 * 
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2016年9月18日 上午9:34:11
 */
@Mapper
public interface SysUserDao extends BaseDao<SysUserEntity> {
	
	/**
	 * 查询用户的所有权限
	 * @param userId  用户ID
	 */
	List<String> queryAllPerms(String userId);
	
	/**
	 * 查询用户的所有菜单ID
	 */
	List<String> queryAllMenuId(String userId);
	
	/**
	 * 根据用户名，查询系统用户
	 */
	SysUserEntity queryByUserName(String username);
	
	/**
	 * 修改密码
	 */
	int updatePassword(Map<String, Object> map);

	/**
	 *  按照部门id查询用户
	 * @param deptId
	 * @return
	 */
	List<SysUserEntity> selectByDeptId(String deptId);

	/**
	 * 按照条件查询数据
	 * @param params
	 * @return
	 */
	List<SysUserEntity> selectListParams(Map<String, Object> params);

	/**
	 * 根据用户名查询活跃用户
	 * @param username
	 * @return
	 */
	SysUserEntity queryActiveByUserName(String username);

	/**
	 * 更新最新登录时间
	 */
	int updateLastLoginTime(SysUserEntity sysUserEntity);

	/**
	 * 根据用户名查询角色ID集合
	 * @param username 用户名
	 * @return 角色ID集合
	 */
	List<String> queryRoles(String username);
}
